Amazon FSx for NetApp ONTAPでスケールアウトファイルシステムを作成できるようになりました #AWSreInvent
今までのAmazon FSx for NetApp ONTAPでは性能の限界を感じる
こんにちは、のんピ(@non____97)です。
皆さん今までのAmazon FSx for NetApp ONTAP(以降FSxN)に性能の限界を感じことはありますか? 私はあります。
従来のFSxNのSSDサイズは192TiBで、Readのスループットは4GiBpsでした。ゲノム解析や機械学習など膨大なデータを高速に演算させたいデータストアにおいては、この性能では心許ないケースがあります。
今回、アップデートによりAmazon FSx for NetApp ONTAPでスケールアウトファイルシステムを作成できるようになりました。
AWS Blogsにも投稿されています。
これにより、大幅に性能が向上しました。
以降詳細について説明していきます。
いきなりまとめ
- Single-AZのファイルシステムにおいて、クラスターを複数のHAペアで構成できるようになった
- 複数のHAペアを持つMulti-AZのファイルシステムを作成することはできない
- HAペア毎にaggregateは異なる
- HAペア間でデータは同期されない
- HAペアが複数ある場合、各エンドポイントは以下の数存在する
- SVMの管理IPアドレス、SMBエンドポイント、NFSエンドポイント : HAペア数
- クラスター間IPアドレス、iSCSI IPアドレス : HAペア数の2倍
- スケールアウトすることで各リソースの上限が大幅に向上
- SSD : 最大192 TiB -> 最大1 PiB
- SSD IOPS : 最大160,000 IOPS -> 最大1,200,000 IOPS
- Readスループット : 最大 4GiBps -> 最大 36GiBps
- Writeスループット : 最大 1.8GiBps -> 最大 6.6GiBps
- ファイルシステム作成後にHAペアを追加したり、削除したりすることはできない
- スケールアウトファイルシステム作成後、スループットキャパシティを変更することはできない
- SSDのミニマムサイズはHAペア数 × 1,024GiB
- マネジメントコンソールからはスケールアウトファイルシステムに対してFlexGroupのボリュームしか作成できない
- ONTAP CLIではFlexVolumeも作成できる
- 2023/11/30時点では以下のリージョンでのみ使用可能
- us-east-1
- us-east-2
- us-west-2
- eu-west-1
- ap-southeast-1
- スケールアウトファイルシステムは通常のFSxNファイルシステムとCloudWatchメトリクスが異なる
スケールアウトファイルシステムとは
スケールアウトファイルシステムとは、FSxNファイルシステム(通常のONTAPでいうところのクラスター)内のHAペアが複数ある状態のファイルシステムを指します。
Single-AZであってもMulti-AZでも1つのFSxNファイルシステムでは2つのノードがあるHA構成を組んでいます。これがHAペアです。
以下の図が分かりやすいかと思います。
HAペアが複数存在するということを図示すると、以下のようになります。
1つのファイルシステムに最大6つのHAペアを作成することが可能です。そして、HAペア1つあたり6GiBpsのスループットキャパシティと200,000 SSD IOPSを最大割り当てることが可能です。
HAペアが複数用意して各HAペアで処理を行わせることで、従来の1つのHAペアの数倍もの性能を出すことが可能です。
HAペアの説明はAWS公式ドキュメントに記載されています。併せてご覧ください。
やってみた
スケールアウトファイルシステムの作成
実際にスケールアウトファイルシステムを作成してみましょう。
Multi-AZ構成ではスケールアウトファイルシステムはサポートされていません。そのため、スループットキャパシティは1つのHAペアのものしか選択できません。
デプロイタイプをSingle-AZに変更すると、以下の通り最大6つのHAペアのスループットキャパシティを選択できます。
今回は試しにスループットキャパシティを6,144MBpsのものを選択します。
次にボリュームの作成です。ボリュームサイズの説明書きを確認するとMinimum 1,600 GiB (800 GiB per HA pair). Maximum 4,800 TiB (2,400 TiB per HA pair).
と記載されています。
これはボリュームがFlexGroupであるためです。FlexGroupのコンスティチュエントボリューム(メンバーボリューム)あたりの最小のサイズ100GiBであるためです。
マネジメントコンソールから作成するFSxNのFlexGroupはコンスティチュエントボリューム数は8つです。そして、今回の場合HAペアが2つのものを選択しているため、8 × 2 × 100GiB でミニマムが1,600GiBになっていると考えます。
その他の設定はデフォルトで、いざ作成しようとします。
はい、Invalid storage capacity provided: 1024 GiB. Minimum storage capacity for ONTAP file systems is 2048.
というエラーで怒られました。
これもHAペア毎のミニマムのSSDサイズが1,024GiBという制約があるためだと考えます。
SSDサイズを2,048GiBに変更してリトライします。
確認画面を確認していくと作成後に変更可能なパラメーターが分かります。HAペア数を変更したり、スループットキャパシティを変更したりすることはできないようです。
ネットワーク周りの設定は特筆すべき点はありません。
ボリュームは推測のとおり、FlexGroupですね。
FlexGroupを使うことによって大量のボリュームへの操作を複数のノードで行うことが可能です。
作成したFSxNファイルシステムの確認
作成したFSxNファイルシステムを確認します。
スループットキャパシティやSSDのIOPSが6,144と頼もしい値になっています。
エンドポイントを確認すると、クラスター間エンドポイントのIPアドレスが通常2つのところ、4つになっていました。こちらは各ノード毎に1つIPアドレスが割り当てられるため、HAペアが2つ × HAペア毎のノード数2 で4つになっていると考えます。
SVMのエンドポイントもそれぞれHAペアの数分増えています。
ONTAP CLIからの確認
ONTAP CLIからも色々確認してみます。
まず、aggregateです。
::> aggr show Aggregate Size Available Used% State #Vols Nodes RAID Status --------- -------- --------- ----- ------- ------ ---------------- ------------ aggr1 861.7GB 854.7GB 1% online 9 FsxId056d2eed50b raid0, 9f81af-01 mirrored, normal aggr2 861.7GB 855.7GB 1% online 8 FsxId056d2eed50b raid0, 9f81af-03 mirrored, normal 2 entries were displayed. ::> aggr show -instance Aggregate: aggr1 Storage Type: ssd Checksum Style: advanced_zoned Number Of Disks: 16 Is Mirrored: true Disks for First Plex: NET-2.6, NET-2.4, NET-2.5, NET-2.8, NET-2.9, NET-2.10, NET-2.3, NET-2.7 Disks for Mirrored Plex: NET-1.2, NET-1.1, NET-1.10, NET-1.4, NET-1.5, NET-1.6, NET-1.7, NET-1.3 Partitions for First Plex: - Partitions for Mirrored Plex: - Node: FsxId056d2eed50b9f81af-01 Free Space Reallocation: off HA Policy: sfo Ignore Inconsistent: off Space Reserved for Snapshot Copies: 5% Aggregate Nearly Full Threshold Percent: 93% Aggregate Full Threshold Percent: 96% Checksum Verification: on RAID Lost Write: off Enable Thorough Scrub: - Hybrid Enabled: false Available Size: 854.7GB Checksum Enabled: true Checksum Status: active Cluster: FsxId056d2eed50b9f81af Home Cluster ID: e6df6fa2-8f1b-11ee-aeee-1374650d2152 DR Home ID: - DR Home Name: - Inofile Version: 4 Has Mroot Volume: false Has Partner Node Mroot Volume: false Home ID: 3323135157 Home Name: FsxId056d2eed50b9f81af-01 Total Hybrid Cache Size: 0B Hybrid: false Inconsistent: false Is Aggregate Home: true Max RAID Size: 8 Flash Pool SSD Tier Maximum RAID Group Size: - Owner ID: 3323135157 Owner Name: FsxId056d2eed50b9f81af-01 Used Percentage: 1% Plexes: /aggr1/plex0, /aggr1/plex1 RAID Groups: /aggr1/plex0/rg0 (advanced_zoned) /aggr1/plex1/rg0 (advanced_zoned) RAID Lost Write State: off RAID Status: raid0, mirrored, normal RAID Type: raid0 SyncMirror Resync Snapshot Frequency in Minutes: 5 Is Root: false Space Used by Metadata for Volume Efficiency: 0B Size: 861.7GB State: online Maximum Write Alloc Blocks: 0 Used Size: 7.02GB Uses Shared Disks: false UUID String: b42e337d-8f1c-11ee-aeee-1374650d2152 Number Of Volumes: 9 Is Flash Pool Caching: - Is Eligible for Auto Balance Aggregate: false State of the aggregate being balanced: ineligible Total Physical Used Size: 93.80MB Physical Used Percentage: 0% State Change Counter for Auto Balancer: 0 SnapLock Type: non-snaplock Is NVE Capable: false Is in the precommit phase of Copy-Free Transition: false Is a 7-Mode transitioning aggregate that is not yet committed in clustered Data ONTAP and is currently out of space: false Threshold When Aggregate Is Considered Unbalanced (%): 70 Threshold When Aggregate Is Considered Balanced (%): 40 Resynchronization Priority: low Space Saved by Data Compaction: 0B Percentage Saved by Data Compaction: 0% Amount of compacted data: 0B Timestamp of Aggregate Creation: 11/30/2023 01:06:34 Enable SIDL: off Composite: true Is FabricPool Mirrored: false Capacity Tier Used Size: 0B Space Saved by Storage Efficiency: 0B Percentage of Space Saved by Storage Efficiency: 0% Amount of Shared bytes count by Storage Efficiency: 0B Inactive Data Reporting Enabled: - Timestamp when Inactive Data Reporting was Enabled: - Enable Aggregate level Encryption: false Aggregate uses data protected SEDs: false azcs read optimization: on Metadata Reserve Space Required For Revert: 0B Aggregate: aggr2 Storage Type: ssd Checksum Style: advanced_zoned Number Of Disks: 16 Is Mirrored: true Disks for First Plex: NET-4.3, NET-4.5, NET-4.6, NET-4.7, NET-4.8, NET-4.10, NET-4.4, NET-4.9 Disks for Mirrored Plex: NET-3.9, NET-3.6, NET-3.3, NET-3.4, NET-3.5, NET-3.8, NET-3.2, NET-3.7 Partitions for First Plex: - Partitions for Mirrored Plex: - Node: FsxId056d2eed50b9f81af-03 Free Space Reallocation: off HA Policy: sfo Ignore Inconsistent: off Space Reserved for Snapshot Copies: 5% Aggregate Nearly Full Threshold Percent: 93% Aggregate Full Threshold Percent: 96% Checksum Verification: on RAID Lost Write: off Enable Thorough Scrub: - Hybrid Enabled: false Available Size: 855.7GB Checksum Enabled: true Checksum Status: active Cluster: FsxId056d2eed50b9f81af Home Cluster ID: e6df6fa2-8f1b-11ee-aeee-1374650d2152 DR Home ID: - DR Home Name: - Inofile Version: 4 Has Mroot Volume: false Has Partner Node Mroot Volume: false Home ID: 3323134984 Home Name: FsxId056d2eed50b9f81af-03 Total Hybrid Cache Size: 0B Hybrid: false Inconsistent: false Is Aggregate Home: true Max RAID Size: 8 Flash Pool SSD Tier Maximum RAID Group Size: - Owner ID: 3323134984 Owner Name: FsxId056d2eed50b9f81af-03 Used Percentage: 1% Plexes: /aggr2/plex0, /aggr2/plex1 RAID Groups: /aggr2/plex0/rg0 (advanced_zoned) /aggr2/plex1/rg0 (advanced_zoned) RAID Lost Write State: off RAID Status: raid0, mirrored, normal RAID Type: raid0 SyncMirror Resync Snapshot Frequency in Minutes: 5 Is Root: false Space Used by Metadata for Volume Efficiency: 0B Size: 861.7GB State: online Maximum Write Alloc Blocks: 0 Used Size: 6.01GB Uses Shared Disks: false UUID String: a1fd62fd-8f1c-11ee-aeee-1374650d2152 Number Of Volumes: 8 Is Flash Pool Caching: - Is Eligible for Auto Balance Aggregate: false State of the aggregate being balanced: ineligible Total Physical Used Size: 89.29MB Physical Used Percentage: 0% State Change Counter for Auto Balancer: 0 SnapLock Type: non-snaplock Is NVE Capable: false Is in the precommit phase of Copy-Free Transition: false Is a 7-Mode transitioning aggregate that is not yet committed in clustered Data ONTAP and is currently out of space: false Threshold When Aggregate Is Considered Unbalanced (%): 70 Threshold When Aggregate Is Considered Balanced (%): 40 Resynchronization Priority: low Space Saved by Data Compaction: 0B Percentage Saved by Data Compaction: 0% Amount of compacted data: 0B Timestamp of Aggregate Creation: 11/30/2023 01:06:02 Enable SIDL: off Composite: true Is FabricPool Mirrored: false Capacity Tier Used Size: 0B Space Saved by Storage Efficiency: 0B Percentage of Space Saved by Storage Efficiency: 0% Amount of Shared bytes count by Storage Efficiency: 0B Inactive Data Reporting Enabled: - Timestamp when Inactive Data Reporting was Enabled: - Enable Aggregate level Encryption: false Aggregate uses data protected SEDs: false azcs read optimization: on Metadata Reserve Space Required For Revert: 0B 2 entries were displayed.
aggregateが2つ存在していますね。そして、ノード1とノード3がそれぞれのオーナーとなっています。
aggregateが2つに分かれているため、HAペア間では同じデータを保持していないと考えると良いでしょう。
続いて、LIFです。
::> network interface show Logical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ---- FsxId056d2eed50b9f81af fsxadmin up/up 10.0.8.232/24 FsxId056d2eed50b9f81af-01 e0e true inter_1 up/up 10.0.8.194/24 FsxId056d2eed50b9f81af-01 e0e true inter_2 up/up 10.0.8.161/24 FsxId056d2eed50b9f81af-02 e0e true inter_3 up/up 10.0.8.225/24 FsxId056d2eed50b9f81af-03 e0e true inter_4 up/up 10.0.8.196/24 FsxId056d2eed50b9f81af-04 e0e true svm iscsi_1 up/up 10.0.8.146/24 FsxId056d2eed50b9f81af-01 e0e true iscsi_2 up/up 10.0.8.155/24 FsxId056d2eed50b9f81af-02 e0e true iscsi_3 up/up 10.0.8.11/24 FsxId056d2eed50b9f81af-03 e0e true iscsi_4 up/up 10.0.8.122/24 FsxId056d2eed50b9f81af-04 e0e true nfs_smb_management_1 up/up 10.0.8.59/24 FsxId056d2eed50b9f81af-01 e0e true nfs_smb_management_3 up/up 10.0.8.48/24 FsxId056d2eed50b9f81af-03 e0e true 11 entries were displayed.
ノードが4つあることが確認できます。
ノード数はnetwork port show
からでも確認できます。
::> network port show Node: FsxId056d2eed50b9f81af-01 Speed(Mbps) Health Port IPspace Broadcast Domain Link MTU Admin/Oper Status --------- ------------ ---------------- ---- ---- ----------- -------- e0e Default Fsx up 9001 auto/auto healthy Node: FsxId056d2eed50b9f81af-02 Speed(Mbps) Health Port IPspace Broadcast Domain Link MTU Admin/Oper Status --------- ------------ ---------------- ---- ---- ----------- -------- e0e Default Fsx up 9001 auto/auto healthy Node: FsxId056d2eed50b9f81af-03 Speed(Mbps) Health Port IPspace Broadcast Domain Link MTU Admin/Oper Status --------- ------------ ---------------- ---- ---- ----------- -------- e0e Default Fsx up 9001 auto/auto healthy Node: FsxId056d2eed50b9f81af-04 Speed(Mbps) Health Port IPspace Broadcast Domain Link MTU Admin/Oper Status --------- ------------ ---------------- ---- ---- ----------- -------- e0e Default Fsx up 9001 auto/auto healthy 4 entries were displayed.
最後にボリュームです。
::> volume show Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- svm svm_root aggr1 online RW 1GB 972.5MB 0% svm vol1 - online RW 1.60TB 1.51TB 0% 2 entries were displayed. ::> volume show -fields aggregate vserver volume aggregate ------- -------- --------- svm svm_root aggr1 svm vol1 - ::> volume show -fields aggregate -is-constituent true vserver volume aggregate ------- ---------- --------- svm vol1__0001 aggr2 svm vol1__0002 aggr1 svm vol1__0003 aggr2 svm vol1__0004 aggr1 svm vol1__0005 aggr2 svm vol1__0006 aggr1 svm vol1__0007 aggr2 svm vol1__0008 aggr1 svm vol1__0009 aggr2 svm vol1__0010 aggr1 svm vol1__0011 aggr2 svm vol1__0012 aggr1 svm vol1__0013 aggr2 svm vol1__0014 aggr1 svm vol1__0015 aggr2 svm vol1__0016 aggr1
マネジメントコンソールから作成したボリュームはFlexGroupで各ノードに8つのコンスティチュエントボリュームがあることが分かります。
FlexVolumeのボリュームの作成
FlexVolumeのボリュームを作成できるか確認します。
::> volume create -volume flexvolume -aggregate aggr1 -size 1G -state online -policy default -junction-path /flexvolume [Job 69] Job succeeded: Successful ::> volume show -fields aggregatevserver volume aggregate ------- ---------- --------- svm flexvolume aggr1 svm svm_root aggr1 svm vol1 - 3 entries were displayed.
はい、問題なくできました。
FlexGroupではiSCSIは使えません。スケールアウトファイルシステムでiSCSIがどうしても使いたい時はFlexVolumeを用意すると良いでしょう。
超ハイパーマンスを求める環境に
Amazon FSx for NetApp ONTAPでスケールアウトファイルシステムを作成できるようになったアップデートを紹介しました。
超ハイパーマンスを求める環境にマッチしそうですね。
ただし、HAペアの数を変更したり、スループットキャパシティを変更したりできないと制約事項は色々とあります。採用する際は制約事項を確認した上で利用しましょう。
また、そもそもストレージがボトルネックであるのかどうかも確認すると良いかと思います。ボトルネックがFSxNまでのネットワークの帯域なのにストレージ側で改善しようとするなど的外れな対応となると、無駄な課金が発生してしまいます。
まずは1HAペアで試してみて、それでも確実にストレージが原因でパフォーマンスが出ないことを確認できたら、スケールアウトファイルシステムを採用すると良いでしょう。
また、スケールアウトファイルシステムは複数のaggregate、3つ以上のノードが存在するため、CloudWatchメトリクスも通常のFSxNファイルシステムとは異なるようです。各メトリクスの詳細は以下AWS公式ドキュメントをご覧ください。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!